Распространенные ошибки
EnvironmentError: Not found ENV -> CONFIG_FILE
Не установлена переменная окружения CONFIG_FILE. Укажите путь к конфигу:
CONFIG_FILE=./config.yaml python3 main.py
ValidationError при загрузке конфига
Конфигурация не соответствует модели. Убедитесь, что:
-
Поле
additional.portприсутствует и является целым числом -
Все обязательные поля вашего расширения
BaseConfigзаполнены
ValueError: Invalid value for 'name', must not be None
Обязательные поля модели не заполнены. Для CollectionHost обязательны name и responsible.
ValueError: Invalid value for 'protocol', must be one of ['tcp', 'udp', 'icmp']
Передано недопустимое значение enum. Проверьте допустимые значения в секции «Модели данных».
Данные не появляются в SolarLighthouse
-
Проверьте, что модуль переходит в статус
ASSETS_READY, а неFINISHсразу -- это значит данные были добавлены в storage -
Убедитесь, что
scan_status_storage.append_host_in_storage()вызывается до завершения вашей функции -
Проверьте логи модуля на ошибки сериализации
Модуль зависает / не завершается
HTTP-сервер модуля запускается в отдельном потоке. Keeper отправляет POST /scan/shutdown после получения всех данных. Если модуль не завершается, проверьте что ваша функция не зависла в бесконечном цикле.
Как передать большое количество хостов?
SDK автоматически разбивает данные на пакеты по max_chunk_size (по умолчанию 500). Просто добавляйте хосты по одному через append_host_in_storage() -- чанкинг произойдет автоматически. Для ускорения можно уменьшить max_chunk_size в конфиге.
Как отлаживать маппинг данных?
Установите LOG_LEVEL=DEBUG:
LOG_LEVEL=DEBUG CONFIG_FILE=./config.yaml python3 main.py
Добавляйте в свой код:
import logging
log = logging.getLogger(__name__)
log.info(f"Обработан хост: {host.name}, интерфейсов: {len(host.net_interfaces or [])}")